
setCookie = function (name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}
getCookie = function(name) {
    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) {
            offset = cookie.indexOf(search);
            if (offset != -1) {
                    offset += search.length;
                    end = cookie.indexOf(";", offset)
                    if (end == -1) {
                            end = cookie.length;
                    }
                    setStr = unescape(cookie.substring(offset, end));
            }
    }
    return (setStr);
}

//###############################################################################################################################
	Ext.BLANK_IMAGE_URL = '/bres/img/s.gif';

	CloseWin = function() {
            document.location = '?logout=1';
	};
        Ext.Ajax.on('requestcomplete', function(conn, response, opt) {
            if (response.status == 200) {
                var ansv = Ext.util.JSON.decode(response.responseText);
                if(!ansv.success && ansv.error ) {
                    error_mes('Ошибка', ansv.error );
                }
            } else
                error_mes('Ошибка', "Возникла ошибка во время выполнения запроса к серверу.\nПроверьте подключение к сети." );
        });
//####################################################################################################################
	var tbActions = {
        addrec:    new Ext.Action({ icon: '/bres/img/add.gif', cls: 'x-btn-icon', tooltip: 'Добавить запись' }),
        addchild:  new Ext.Action({ icon: '/bres/img/chld.gif', cls: 'x-btn-icon',	tooltip: 'Добавить дочернюю запись' }),
        editrec:   new Ext.Action({ icon: '/bres/img/edd.gif', cls: 'x-btn-icon',	tooltip: 'Редактировать запись' }),
        deleterec: new Ext.Action({ icon: '/bres/img/del.gif', cls: 'x-btn-icon', tooltip: 'Удалить запись' }),
        confirm:   new Ext.Action({ icon: '/bres/img/ok_g.gif',	cls: 'x-btn-icon', tooltip: 'Сохранить изменения' }),
        cancel:    new Ext.Action({ icon: '/bres/img/cncl_g.gif',	cls: 'x-btn-icon', tooltip: 'Отменить изменения' }),
        firstrow:  new Ext.Action({ icon: '/bres/img/first.gif', cls: 'x-btn-icon', tooltip: 'В начало набора данных' }),
        prevrow:   new Ext.Action({ icon: '/bres/img/prev.gif', cls: 'x-btn-icon', tooltip: 'Предыдущая запись' }),
        nextrow:   new Ext.Action({ icon: '/bres/img/next.gif',	cls: 'x-btn-icon', tooltip: 'Следующая запись' }),
        lastrow:   new Ext.Action({ icon: '/bres/img/last.gif',	cls: 'x-btn-icon', tooltip: 'В конец набора данных' }),
        refresh:   new Ext.Action({ icon: '/bres/img/reload.gif',	cls: 'x-btn-icon', tooltip: 'Обновить выборку' }),
        rollback:  new Ext.Action({ icon: '/bres/img/ctrl_z.gif',	cls: 'x-btn-icon', tooltip: 'Отменить последнюю операцию' })
    };
    popUpMenu = new Ext.menu.Menu({
        items: [
            {text: 'Добавить запись', icon: '/bres/img/butt_ico_16/add-icon.png', id: 'addrec', handler: function() {tbActions.addrec.execute();} },
            //{text: 'Добавить дочернюю запись', icon: '/bres/img/chld.gif', id: 'addchild', handler: function() {tbActions.addchild.execute();} },
            {text: 'Редактировать запись', icon: '/bres/img/butt_ico_16/note-edit-icon.png', id: 'editrec', handler: function() {tbActions.editrec.execute();} },
            {text: 'Удалить запись', icon: '/bres/img/butt_ico_16/remove-icon.png', id: 'deleterec', handler: function() {tbActions.deleterec.execute();} },
            '-',
            {text: 'Обновить', icon: '/bres/img/reload.gif', id: 'refresh', handler: function() {tbActions.refresh.execute();} }
        ]
    });

    error_mes = function(tit, mes) {
        Ext.MessageBox.show({
            title: tit,
            width: 800,
            heigth: 600,
            msg: mes,
            buttons: Ext.MessageBox.OK,
            fn: null,
            icon: 'ext-mb-info'
        });
    };
    confirmMess = function(mes) {
        var ansv = false;
        Ext.Msg.show({
           title:'Внимание!',
           msg: mes,
           buttons: Ext.Msg.YESNO,
           fn: function(btn){
                if(btn == 'yes') { ansv = true; }
           },
           animEl: 'elId',
           icon: Ext.MessageBox.QUESTION
        });
        return ansv;
    };

// Очищает все обработчики событий у кнопок панели инструментов
    function clearToolbarActions() {
            for (var a in tbActions) {
                    tbActions[a].setHandler(null);
                    tbActions[a].disable();
                    //if( a == 'addrec' || a == 'editrec' || a == 'deleterec' || a == 'refresh' )
                        //popUpMenu.items.map[a].disable();
            }
    }

    // Возвращает фунцию-обработик события e для obj
    function toolbarHandlerFactory(e, obj) {
            return function() {
                    obj.fireEvent(e);
            }
    }

    // Привязывает кнопки навигации в панеле инструментов к таблице grid
    function attachToolbarNav(grid) {
            setToolbarActionHandler('firstrow', toolbarHandlerFactory('firstrow', grid));
            setToolbarActionHandler('prevrow', toolbarHandlerFactory('prevrow', grid));
            setToolbarActionHandler('nextrow', toolbarHandlerFactory('nextrow', grid));
            setToolbarActionHandler('lastrow', toolbarHandlerFactory('lastrow', grid));
            setToolbarActionHandler('refresh', toolbarHandlerFactory('refresh', grid));
    }

    // Устанавливает обработчик события handler для кнопки-действия action в панеле инструментов
    function setToolbarActionHandler(action, handler) {
        if (handler != null) {
                tbActions[action].setHandler(handler);
                tbActions[action].enable();
                if( action == 'addrec' || action == 'editrec' || action == 'deleterec' || action == 'addchild' || action == 'refresh' )
                    popUpMenu.items.map[action].enable();
        } else {
                tbActions[action].setHandler(null);
                tbActions[action].disable();
                if( action == 'addrec' || action == 'editrec' || action == 'deleterec' || action == 'addchild' || action == 'refresh' )
                    popUpMenu.items.map[action].disable();
        }
    }
    //
    function selectGrid(gr) {
        unSelectGrid();
        gr.addClass('selected');
    }
    function unSelectGrid() {
        projectsGrid.removeClass('selected');
    }
//##############################################################################

  curencyStore = new Ext.data.JsonStore({
          autoDestroy: false,
          autoLoad: true,
          url: 'rest/opr/getCurrencies',
          root: 'data',
          fields: [ 'id', 'name', 'shortName']
  });
//  shemStore = new Ext.data.JsonStore({
//      autoLoad: true,
//      url: 'main?action=GetShemList',
//      root: 'data',
//      fields: ['shem_type_id', 's_name', 'name' ]
//  });
//
//  var mediaStore = new Ext.data.JsonStore({
//      autoLoad: true,
//      url: 'main?action=GetMediaList',
//      root: 'data',
//      fields: ['media_type_id', 'media_type_name' ]
//  });
//
//  var brendsStore = new Ext.data.GroupingStore({
//      reader: new Ext.data.JsonReader({
//          root: 'data',
//          fields: [
//              {type: 'int', name: "client_id"}, {type: 'int', name: 'brand_id'},{type: 'int', name: 'action_id'},
//              {name: "brand_name"}, {name:'brand_short_name'}, {name:'comment'}
//         ]
//      }),
//      url: 'main?action=getAllBrands',
//      groupField:'client_id'
//  });
//
//  actionsStore = new Ext.data.JsonStore({
//      autoLoad: true,
//      url: 'main?action=getAllActions',
//      root: 'data',
//      fields: ['action_id', 'brand_id', 'action_name']
//  });
//
//  actorsStore = new Ext.data.JsonStore({
//      autoLoad: true,
//      url: 'main?action=GetAllActorsList',
//      root: 'data',
//      fields: ['actor_id', 'actor_name', 'actor_short_name' ],
//      listeners:{
//          load: function() { brendsStore.load(); }
//      }
//  });
//#########################################################################################33

ComAmountRenderer = function(sum, n) {
    var stt = (sum*1).toFixed(n)+''; var rr = ''; var p = stt.indexOf('.'); var l = stt.length;
    rr = stt.substring(p+1,l);
    for(var i=0; i<p+1; i++) {
        var d = stt[p-i];
        if(!(i % 3) && i!=0) d=' '+d;
        rr = d+rr;
    }
    if(sum>0) return '<span style="color:green;"> '+rr+' </span>';
    if(sum<0) return '<span style="color:red;"> '+rr+' </span>';
    if(sum==0) return '<span style="color:#ccc;"> 0.00 </span>';
};

valPofit = function(value, metaData, record, rowIndex, colIndex, store) {
    var val = parseFloat(record.data.budj_c) - parseFloat(record.data.budj_s);
    return sprintf('%01.2f', parseFloat( val ) );
};
renderActors = function(val, rr, tt) {
    return (val>0) ? actorsStore.getAt(actorsStore.find('actor_id', val)).json.actor_name : '-';
};
renderShem = function(val, rr, tt) {
    return (val>0) ? shemStore.getAt(shemStore.find('shem_type_id', val)).json.s_name : '-';
};
renderAction = function(val) {
    return (val>0) ? actionsStore.getAt(actionsStore.find('action_id', val)).json.action_name : '-';
};
renderBrand = function(val) {
    return (val>0) ? brendsStore.getAt(brendsStore.find('brand_id', val)).json.brand_name : '-';
};
renderMedia = function(val) {
    return (val>0) ? mediaStore.getAt(mediaStore.find('media_type_id', val)).json.media_type_name : '-';
};